/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.cpal.entrenamiento.dao.impl;

import com.cpal.entrenamiento.dao.IEjercicioDAO;
import com.cpal.entrenamiento.entity.Ejercicio;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.dao.DataAccessException;
import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;
import org.springframework.stereotype.Repository;

/**
 *
 * @author Omar
 */
@Repository
public class EjercicioDAO extends SqlMapClientDaoSupport implements IEjercicioDAO {

    @Override
    public List<Ejercicio> buscarEjercicio(Ejercicio ejercicio) throws DataAccessException {
        Map<String, Object> parameterMap = new HashMap<String, Object>();
        parameterMap.put("codigo", ejercicio.getCodigo());
        parameterMap.put("descripcion", ejercicio.getDescripcion());
        parameterMap.put("dificultad", ejercicio.getDificultad());
        parameterMap.put("codigoCategoria", 1);
        parameterMap.put("codigoSubCategoria", 1);
        parameterMap.put("codigoTarea", ejercicio.getTarea().getCodigo());

        return getSqlMapClientTemplate().queryForList("buscarEjercicio", parameterMap);
    }

    @Override
    public void eliminarEjercicio(Ejercicio ejercicio) throws DataAccessException {
        Map<String, Object> parameterMap = new HashMap<String, Object>();
        parameterMap.put("codigo", ejercicio.getCodigo());
        getSqlMapClientTemplate().update("eliminarEjercicio", parameterMap);
    }

    @Override
    public void insertarEjercicio(Ejercicio ejercicio) throws DataAccessException {
        Map<String, Object> parameterMap = new HashMap<String, Object>();                
        parameterMap.put("codigoTarea", ejercicio.getTarea().getCodigo());
        parameterMap.put("codigoEstructura", ejercicio.getRimaColumna().getCodigo());
        parameterMap.put("descripcion", ejercicio.getDescripcion());
        parameterMap.put("enunciado", ejercicio.getEnunciado());
        parameterMap.put("dificultad", ejercicio.getDificultad());
        parameterMap.put("fondoPantalla", ejercicio.getFondoPantalla());
        parameterMap.put("aplicarVoz", ejercicio.getAplicarVoz());
        parameterMap.put("estado", ejercicio.getEstado());
        parameterMap.put("usuario", 1);
        parameterMap.put("fechaCreacion", new java.sql.Timestamp(new java.util.Date().getTime()));

        getSqlMapClientTemplate().insert("insertarEjercicio", parameterMap);
    }

    @Override
    public void actualizarEjercicio(Ejercicio ejercicio) throws DataAccessException {
        Map<String, Object> parameterMap = new HashMap<String, Object>();
        parameterMap.put("codigo", ejercicio.getCodigo());
        parameterMap.put("codigoTarea", ejercicio.getTarea().getCodigo());
        parameterMap.put("codigoEstructura", ejercicio.getRimaColumna().getCodigo());
        parameterMap.put("descripcion", ejercicio.getDescripcion());
        parameterMap.put("enunciado", ejercicio.getEnunciado());
        parameterMap.put("dificultad", ejercicio.getDificultad());
        parameterMap.put("fondoPantalla", ejercicio.getFondoPantalla());
        parameterMap.put("aplicarVoz", ejercicio.getAplicarVoz());
        parameterMap.put("estado", ejercicio.getEstado());
        parameterMap.put("usuario", 1);
        parameterMap.put("fechaModificacion", new java.sql.Timestamp(new java.util.Date().getTime()));

        getSqlMapClientTemplate().update("actualizarEjercicio", parameterMap);
    }

    @Override
    public List<Ejercicio> buscarEjercicioxCodigo(Ejercicio ejercicio) throws DataAccessException {
         Map<String, Object> parameterMap = new HashMap<String, Object>();
        parameterMap.put("codigo", ejercicio.getCodigo());
       
        return getSqlMapClientTemplate().queryForList("buscarEjercicioxCodigo", parameterMap);
    }
}
